home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- import test.test_support as test
- import unittest
- import sys
- import codecs
- import htmlentitydefs
- import unicodedata
-
- class PosReturn:
-
- def __init__(self):
- self.pos = 0
-
-
- def handle(self, exc):
- oldpos = self.pos
- realpos = oldpos
- if realpos < 0:
- realpos = len(exc.object) + realpos
-
- if realpos <= exc.start:
- self.pos = len(exc.object)
-
- return (u'<?>', oldpos)
-
-
-
- class CodecCallbackTest(unittest.TestCase):
-
- def test_xmlcharrefreplace(self):
- s = u'スパモ änd eggs'
- self.assertEqual(s.encode('ascii', 'xmlcharrefreplace'), 'スパモ änd eggs')
- self.assertEqual(s.encode('latin-1', 'xmlcharrefreplace'), 'スパモ \xe4nd eggs')
-
-
- def test_xmlcharnamereplace(self):
-
- def xmlcharnamereplace(exc):
- if not isinstance(exc, UnicodeEncodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- l = []
- for c in exc.object[exc.start:exc.end]:
-
- try:
- l.append(u'&%s;' % htmlentitydefs.codepoint2name[ord(c)])
- continue
- except KeyError:
- l.append(u'%d;' % ord(c))
- continue
-
-
-
- return (u''.join(l), exc.end)
-
- codecs.register_error('test.xmlcharnamereplace', xmlcharnamereplace)
- sin = u'«ℜ» = 〈ሴ€〉'
- sout = '«ℜ» = 〈ሴ€〉'
- self.assertEqual(sin.encode('ascii', 'test.xmlcharnamereplace'), sout)
- sout = '\xabℜ\xbb = 〈ሴ€〉'
- self.assertEqual(sin.encode('latin-1', 'test.xmlcharnamereplace'), sout)
- sout = '\xabℜ\xbb = 〈ሴ\xa4〉'
- self.assertEqual(sin.encode('iso-8859-15', 'test.xmlcharnamereplace'), sout)
-
-
- def test_uninamereplace(self):
-
- def uninamereplace(exc):
- if not isinstance(exc, UnicodeEncodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- l = []
- for c in exc.object[exc.start:exc.end]:
- l.append(unicodedata.name(c, u'0x%x' % ord(c)))
-
- return (u'\x1b[1m%s\x1b[0m' % u', '.join(l), exc.end)
-
- codecs.register_error('test.uninamereplace', uninamereplace)
- sin = u'¬ሴ€耀'
- sout = '\x1b[1mNOT SIGN, ETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000\x1b[0m'
- self.assertEqual(sin.encode('ascii', 'test.uninamereplace'), sout)
- sout = '\xac\x1b[1mETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000\x1b[0m'
- self.assertEqual(sin.encode('latin-1', 'test.uninamereplace'), sout)
- sout = '\xac\x1b[1mETHIOPIC SYLLABLE SEE\x1b[0m\xa4\x1b[1mCJK UNIFIED IDEOGRAPH-8000\x1b[0m'
- self.assertEqual(sin.encode('iso-8859-15', 'test.uninamereplace'), sout)
-
-
- def test_backslashescape(self):
- sin = u'a¬ሴ€耀'
- if sys.maxunicode > 65535:
- sin += unichr(sys.maxunicode)
-
- sout = 'a\\xac\\u1234\\u20ac\\u8000'
- if sys.maxunicode > 65535:
- sout += '\\U%08x' % sys.maxunicode
-
- self.assertEqual(sin.encode('ascii', 'backslashreplace'), sout)
- sout = 'a\xac\\u1234\\u20ac\\u8000'
- if sys.maxunicode > 65535:
- sout += '\\U%08x' % sys.maxunicode
-
- self.assertEqual(sin.encode('latin-1', 'backslashreplace'), sout)
- sout = 'a\xac\\u1234\xa4\\u8000'
- if sys.maxunicode > 65535:
- sout += '\\U%08x' % sys.maxunicode
-
- self.assertEqual(sin.encode('iso-8859-15', 'backslashreplace'), sout)
-
-
- def test_decoderelaxedutf8(self):
-
- def relaxedutf8(exc):
- if not isinstance(exc, UnicodeDecodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- if exc.object[exc.start:exc.end].startswith('\xc0\x80'):
- return (u'\x00', exc.start + 2)
- else:
- raise exc
-
- codecs.register_error('test.relaxedutf8', relaxedutf8)
- sin = 'a\x00b\xc0\x80c\xc3\xbc\xc0\x80\xc0\x80'
- sout = u'a\x00b\x00c├╝\x00\x00'
- self.assertEqual(sin.decode('utf-8', 'test.relaxedutf8'), sout)
- sin = '\xc0\x80\xc0\x81'
- self.assertRaises(UnicodeError, sin.decode, 'utf-8', 'test.relaxedutf8')
-
-
- def test_charmapencode(self):
- charmap = []([ (ord(c), 2 * c.upper()) for c in 'abcdefgh' ])
- sin = u'abc'
- sout = 'AABBCC'
- self.assertEquals(codecs.charmap_encode(sin, 'strict', charmap)[0], sout)
- sin = u'abcA'
- self.assertRaises(UnicodeError, codecs.charmap_encode, sin, 'strict', charmap)
- charmap[ord('?')] = 'XYZ'
- sin = u'abcDEF'
- sout = 'AABBCCXYZXYZXYZ'
- self.assertEquals(codecs.charmap_encode(sin, 'replace', charmap)[0], sout)
- charmap[ord('?')] = u'XYZ'
- self.assertRaises(TypeError, codecs.charmap_encode, sin, 'replace', charmap)
- charmap[ord('?')] = u'XYZ'
- self.assertRaises(TypeError, codecs.charmap_encode, sin, 'replace', charmap)
-
-
- def test_decodeunicodeinternal(self):
- self.assertRaises(UnicodeDecodeError, '\x00\x00\x00\x00\x00'.decode, 'unicode-internal')
- if sys.maxunicode > 65535:
-
- def handler_unicodeinternal(exc):
- if not isinstance(exc, UnicodeDecodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- return (u'\x01', 1)
-
- self.assertEqual('\x00\x00\x00\x00\x00'.decode('unicode-internal', 'ignore'), u'\x00')
- self.assertEqual('\x00\x00\x00\x00\x00'.decode('unicode-internal', 'replace'), u'\x00�')
- codecs.register_error('test.hui', handler_unicodeinternal)
- self.assertEqual('\x00\x00\x00\x00\x00'.decode('unicode-internal', 'test.hui'), u'\x00\x01\x00')
-
-
-
- def test_callbacks(self):
-
- def handler1(exc):
- if not isinstance(exc, UnicodeEncodeError) and not isinstance(exc, UnicodeDecodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- l = [ u'<%d>' % ord(exc.object[pos]) for pos in xrange(exc.start, exc.end) ]
- return (u'[%s]' % u''.join(l), exc.end)
-
- codecs.register_error('test.handler1', handler1)
-
- def handler2(exc):
- if not isinstance(exc, UnicodeDecodeError):
- raise TypeError("don't know how to handle %r" % exc)
-
- l = [ u'<%d>' % ord(exc.object[pos]) for pos in xrange(exc.start, exc.end) ]
- return (u'[%s]' % u''.join(l), exc.end + 1)
-
- codecs.register_error('test.handler2', handler2)
- s = '\x00\x81\x7f\x80\xff'
- self.assertEqual(s.decode('ascii', 'test.handler1'), u'\x00[<129>]\x7f[<128>][<255>]')
- self.assertEqual(s.decode('ascii', 'test.handler2'), u'\x00[<129>][<128>]')
- self.assertEqual('\\u3042\\u3xxx'.decode('unicode-escape', 'test.handler1'), u'πüé[<92><117><51><120>]xx')
- self.assertEqual('\\u3042\\u3xx'.decode('unicode-escape', 'test.handler1'), u'πüé[<92><117><51><120><120>]')
- self.assertEqual(codecs.charmap_decode('abc', 'test.handler1', {
- ord('a'): u'z' })[0], u'z[<98>][<99>]')
- self.assertEqual(u'güßrk'.encode('ascii', 'test.handler1'), u'g[<252><223>]rk')
- self.assertEqual(u'güß'.encode('ascii', 'test.handler1'), u'g[<252><223>]')
-
-
- def test_longstrings(self):
- errors = [
- 'strict',
- 'ignore',
- 'replace',
- 'xmlcharrefreplace',
- 'backslashreplace']
- for err in errors:
- codecs.register_error('test.' + err, codecs.lookup_error(err))
-
- l = 1000
- [] += [ 'test.' + err for err in errors ]
- for s in (u'x', u'あ', u'aä'):
- pass
-
-
-
- def check_exceptionobjectargs(self, exctype, args, msg):
- self.assertRaises(TypeError, exctype, *args[:-1])
- self.assertRaises(TypeError, exctype, *args + [
- 'too much'])
- wrongargs = [
- 'spam',
- u'eggs',
- 42,
- 1.0,
- None]
- for i in xrange(len(args)):
- for wrongarg in wrongargs:
- if type(wrongarg) is type(args[i]):
- continue
-
- callargs = []
- for j in xrange(len(args)):
- if i == j:
- callargs.append(wrongarg)
- continue
- callargs.append(args[i])
-
- self.assertRaises(TypeError, exctype, *callargs)
-
-
- exc = exctype(*args)
- self.assertEquals(str(exc), msg)
-
-
- def test_unicodeencodeerror(self):
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'g├╝rk',
- 1,
- 2,
- 'ouch'], "'ascii' codec can't encode character u'\\xfc' in position 1: ouch")
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'g├╝rk',
- 1,
- 4,
- 'ouch'], "'ascii' codec can't encode characters in position 1-3: ouch")
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'├╝x',
- 0,
- 1,
- 'ouch'], "'ascii' codec can't encode character u'\\xfc' in position 0: ouch")
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'─Çx',
- 0,
- 1,
- 'ouch'], "'ascii' codec can't encode character u'\\u0100' in position 0: ouch")
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'￿x',
- 0,
- 1,
- 'ouch'], "'ascii' codec can't encode character u'\\uffff' in position 0: ouch")
- if sys.maxunicode > 65535:
- self.check_exceptionobjectargs(UnicodeEncodeError, [
- 'ascii',
- u'𐀀x',
- 0,
- 1,
- 'ouch'], "'ascii' codec can't encode character u'\\U00010000' in position 0: ouch")
-
-
-
- def test_unicodedecodeerror(self):
- self.check_exceptionobjectargs(UnicodeDecodeError, [
- 'ascii',
- 'g\xfcrk',
- 1,
- 2,
- 'ouch'], "'ascii' codec can't decode byte 0xfc in position 1: ouch")
- self.check_exceptionobjectargs(UnicodeDecodeError, [
- 'ascii',
- 'g\xfcrk',
- 1,
- 3,
- 'ouch'], "'ascii' codec can't decode bytes in position 1-2: ouch")
-
-
- def test_unicodetranslateerror(self):
- self.check_exceptionobjectargs(UnicodeTranslateError, [
- u'g├╝rk',
- 1,
- 2,
- 'ouch'], "can't translate character u'\\xfc' in position 1: ouch")
- self.check_exceptionobjectargs(UnicodeTranslateError, [
- u'g─Çrk',
- 1,
- 2,
- 'ouch'], "can't translate character u'\\u0100' in position 1: ouch")
- self.check_exceptionobjectargs(UnicodeTranslateError, [
- u'g￿rk',
- 1,
- 2,
- 'ouch'], "can't translate character u'\\uffff' in position 1: ouch")
- if sys.maxunicode > 65535:
- self.check_exceptionobjectargs(UnicodeTranslateError, [
- u'g𐀀rk',
- 1,
- 2,
- 'ouch'], "can't translate character u'\\U00010000' in position 1: ouch")
-
- self.check_exceptionobjectargs(UnicodeTranslateError, [
- u'g├╝rk',
- 1,
- 3,
- 'ouch'], "can't translate characters in position 1-2: ouch")
-
-
- def test_badandgoodstrictexceptions(self):
- self.assertRaises(TypeError, codecs.strict_errors, 42)
- self.assertRaises(Exception, codecs.strict_errors, Exception('ouch'))
- self.assertRaises(UnicodeEncodeError, codecs.strict_errors, UnicodeEncodeError('ascii', u'πüé', 0, 1, 'ouch'))
-
-
- def test_badandgoodignoreexceptions(self):
- self.assertRaises(TypeError, codecs.ignore_errors, 42)
- self.assertRaises(TypeError, codecs.ignore_errors, UnicodeError('ouch'))
- self.assertEquals(codecs.ignore_errors(UnicodeEncodeError('ascii', u'πüé', 0, 1, 'ouch')), (u'', 1))
- self.assertEquals(codecs.ignore_errors(UnicodeDecodeError('ascii', '\xff', 0, 1, 'ouch')), (u'', 1))
- self.assertEquals(codecs.ignore_errors(UnicodeTranslateError(u'πüé', 0, 1, 'ouch')), (u'', 1))
-
-
- def test_badandgoodreplaceexceptions(self):
- self.assertRaises(TypeError, codecs.replace_errors, 42)
- self.assertRaises(TypeError, codecs.replace_errors, UnicodeError('ouch'))
- self.assertEquals(codecs.replace_errors(UnicodeEncodeError('ascii', u'πüé', 0, 1, 'ouch')), (u'?', 1))
- self.assertEquals(codecs.replace_errors(UnicodeDecodeError('ascii', '\xff', 0, 1, 'ouch')), (u'�', 1))
- self.assertEquals(codecs.replace_errors(UnicodeTranslateError(u'あ', 0, 1, 'ouch')), (u'�', 1))
-
-
- def test_badandgoodxmlcharrefreplaceexceptions(self):
- self.assertRaises(TypeError, codecs.xmlcharrefreplace_errors, 42)
- self.assertRaises(TypeError, codecs.xmlcharrefreplace_errors, UnicodeError('ouch'))
- self.assertRaises(TypeError, codecs.xmlcharrefreplace_errors, UnicodeDecodeError('ascii', '\xff', 0, 1, 'ouch'))
- self.assertRaises(TypeError, codecs.xmlcharrefreplace_errors, UnicodeTranslateError(u'πüé', 0, 1, 'ouch'))
- self.assertEquals(codecs.xmlcharrefreplace_errors(UnicodeEncodeError('ascii', u'πüé', 0, 1, 'ouch')), (u'%d;' % 12354, 1))
-
-
- def test_badandgoodbackslashreplaceexceptions(self):
- self.assertRaises(TypeError, codecs.backslashreplace_errors, 42)
- self.assertRaises(TypeError, codecs.backslashreplace_errors, UnicodeError('ouch'))
- self.assertRaises(TypeError, codecs.backslashreplace_errors, UnicodeDecodeError('ascii', '\xff', 0, 1, 'ouch'))
- self.assertRaises(TypeError, codecs.backslashreplace_errors, UnicodeTranslateError(u'πüé', 0, 1, 'ouch'))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'πüé', 0, 1, 'ouch')), (u'\\u3042', 1))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'\x00', 0, 1, 'ouch')), (u'\\x00', 1))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'├┐', 0, 1, 'ouch')), (u'\\xff', 1))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'─Ç', 0, 1, 'ouch')), (u'\\u0100', 1))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'￿', 0, 1, 'ouch')), (u'\\uffff', 1))
- if sys.maxunicode > 65535:
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'𐀀', 0, 1, 'ouch')), (u'\\U00010000', 1))
- self.assertEquals(codecs.backslashreplace_errors(UnicodeEncodeError('ascii', u'􏿿', 0, 1, 'ouch')), (u'\\U0010ffff', 1))
-
-
-
- def test_badhandlerresults(self):
- results = (42, u'foo', (1, 2, 3), (u'foo', 1, 3), (u'foo', None), (u'foo',), ('foo', 1, 3), ('foo', None), ('foo',))
- encs = ('ascii', 'latin-1', 'iso-8859-1', 'iso-8859-15')
- for None in results:
- res = None
- for enc in encs:
- self.assertRaises(TypeError, u'πüé'.encode, enc, 'test.badhandler')
-
- for enc, bytes in (('ascii', '\xff'), ('utf-8', '\xff'), ('utf-7', '+x-'), ('unicode-internal', '\x00')):
- self.assertRaises(TypeError, bytes.decode, enc, 'test.badhandler')
-
-
-
-
- def test_lookup(self):
- self.assertEquals(codecs.strict_errors, codecs.lookup_error('strict'))
- self.assertEquals(codecs.ignore_errors, codecs.lookup_error('ignore'))
- self.assertEquals(codecs.strict_errors, codecs.lookup_error('strict'))
- self.assertEquals(codecs.xmlcharrefreplace_errors, codecs.lookup_error('xmlcharrefreplace'))
- self.assertEquals(codecs.backslashreplace_errors, codecs.lookup_error('backslashreplace'))
-
-
- def test_unencodablereplacement(self):
-
- def unencrepl(exc):
- if isinstance(exc, UnicodeEncodeError):
- return (u'Σëé', exc.end)
- else:
- raise TypeError("don't know how to handle %r" % exc)
-
- codecs.register_error('test.unencreplhandler', unencrepl)
- for enc in ('ascii', 'iso-8859-1', 'iso-8859-15'):
- self.assertRaises(UnicodeEncodeError, u'Σëé'.encode, enc, 'test.unencreplhandler')
-
-
-
- def test_badregistercall(self):
- self.assertRaises(TypeError, codecs.register_error, 42)
- self.assertRaises(TypeError, codecs.register_error, 'test.dummy', 42)
-
-
- def test_unknownhandler(self):
- self.assertRaises(LookupError, codecs.lookup_error, 'test.unknown')
-
-
- def test_xmlcharrefvalues(self):
- v = (1, 5, 10, 50, 100, 500, 1000, 5000, 10000, 50000)
- if sys.maxunicode >= 100000:
- v += (100000, 500000, 1000000)
-
- s = []([ unichr(x) for x in v ])
- codecs.register_error('test.xmlcharrefreplace', codecs.xmlcharrefreplace_errors)
- for enc in ('ascii', 'iso-8859-15'):
- for err in ('xmlcharrefreplace', 'test.xmlcharrefreplace'):
- s.encode(enc, err)
-
-
-
-
- def test_decodehelper(self):
- self.assertRaises(LookupError, '\xff'.decode, 'ascii', 'test.unknown')
-
- def baddecodereturn1(exc):
- return 42
-
- codecs.register_error('test.baddecodereturn1', baddecodereturn1)
- self.assertRaises(TypeError, '\xff'.decode, 'ascii', 'test.baddecodereturn1')
- self.assertRaises(TypeError, '\\'.decode, 'unicode-escape', 'test.baddecodereturn1')
- self.assertRaises(TypeError, '\\x0'.decode, 'unicode-escape', 'test.baddecodereturn1')
- self.assertRaises(TypeError, '\\x0y'.decode, 'unicode-escape', 'test.baddecodereturn1')
- self.assertRaises(TypeError, '\\Uffffeeee'.decode, 'unicode-escape', 'test.baddecodereturn1')
- self.assertRaises(TypeError, '\\uyyyy'.decode, 'raw-unicode-escape', 'test.baddecodereturn1')
-
- def baddecodereturn2(exc):
- return (u'?', None)
-
- codecs.register_error('test.baddecodereturn2', baddecodereturn2)
- self.assertRaises(TypeError, '\xff'.decode, 'ascii', 'test.baddecodereturn2')
- handler = PosReturn()
- codecs.register_error('test.posreturn', handler.handle)
- handler.pos = -1
- self.assertEquals('\xff0'.decode('ascii', 'test.posreturn'), u'<?>0')
- handler.pos = -2
- self.assertEquals('\xff0'.decode('ascii', 'test.posreturn'), u'<?><?>')
- handler.pos = -3
- self.assertRaises(IndexError, '\xff0'.decode, 'ascii', 'test.posreturn')
- handler.pos = 1
- self.assertEquals('\xff0'.decode('ascii', 'test.posreturn'), u'<?>0')
- handler.pos = 2
- self.assertEquals('\xff0'.decode('ascii', 'test.posreturn'), u'<?>')
- handler.pos = 3
- self.assertRaises(IndexError, '\xff0'.decode, 'ascii', 'test.posreturn')
- handler.pos = 6
- self.assertEquals('\\uyyyy0'.decode('raw-unicode-escape', 'test.posreturn'), u'<?>0')
-
- class D(dict):
-
- def __getitem__(self, key):
- raise ValueError
-
-
- self.assertRaises(UnicodeError, codecs.charmap_decode, '\xff', 'strict', {
- 255: None })
- self.assertRaises(ValueError, codecs.charmap_decode, '\xff', 'strict', D())
- self.assertRaises(TypeError, codecs.charmap_decode, '\xff', 'strict', {
- 255: sys.maxunicode + 1 })
-
-
- def test_encodehelper(self):
- self.assertRaises(LookupError, u'├┐'.encode, 'ascii', 'test.unknown')
-
- def badencodereturn1(exc):
- return 42
-
- codecs.register_error('test.badencodereturn1', badencodereturn1)
- self.assertRaises(TypeError, u'├┐'.encode, 'ascii', 'test.badencodereturn1')
-
- def badencodereturn2(exc):
- return (u'?', None)
-
- codecs.register_error('test.badencodereturn2', badencodereturn2)
- self.assertRaises(TypeError, u'├┐'.encode, 'ascii', 'test.badencodereturn2')
- handler = PosReturn()
- codecs.register_error('test.posreturn', handler.handle)
- handler.pos = -1
- self.assertEquals(u'├┐0'.encode('ascii', 'test.posreturn'), '<?>0')
- handler.pos = -2
- self.assertEquals(u'├┐0'.encode('ascii', 'test.posreturn'), '<?><?>')
- handler.pos = -3
- self.assertRaises(IndexError, u'├┐0'.encode, 'ascii', 'test.posreturn')
- handler.pos = 1
- self.assertEquals(u'├┐0'.encode('ascii', 'test.posreturn'), '<?>0')
- handler.pos = 2
- self.assertEquals(u'├┐0'.encode('ascii', 'test.posreturn'), '<?>')
- handler.pos = 3
- self.assertRaises(IndexError, u'├┐0'.encode, 'ascii', 'test.posreturn')
- handler.pos = 0
-
- class D(dict):
-
- def __getitem__(self, key):
- raise ValueError
-
-
- for err in ('strict', 'replace', 'xmlcharrefreplace', 'backslashreplace', 'test.posreturn'):
- self.assertRaises(UnicodeError, codecs.charmap_encode, u'├┐', err, {
- 255: None })
- self.assertRaises(ValueError, codecs.charmap_encode, u'├┐', err, D())
- self.assertRaises(TypeError, codecs.charmap_encode, u'├┐', err, {
- 255: 300 })
-
-
-
- def test_translatehelper(self):
-
- class D(dict):
-
- def __getitem__(self, key):
- raise ValueError
-
-
- self.assertRaises(ValueError, u'├┐'.translate, D())
- self.assertRaises(TypeError, u'├┐'.translate, {
- 255: sys.maxunicode + 1 })
- self.assertRaises(TypeError, u'├┐'.translate, {
- 255: () })
-
-
- def test_bug828737(self):
- charmap = {
- ord('&'): u'&',
- ord('<'): u'<',
- ord('>'): u'>',
- ord('"'): u'"' }
- for n in (1, 10, 100, 1000):
- text = u'abc<def>ghi' * n
- text.translate(charmap)
-
-
-
-
- def test_main():
- test.test_support.run_unittest(CodecCallbackTest)
-
- if __name__ == '__main__':
- test_main()
-
-